# -*- coding: UTF-8 -*-
# Project : baidumap
# File : baidumapspider.py
# IDE : PyCharm
# Author : 博科（鑫贝西）田聪
# Date : 2021/11/12 14:34
import time

import pandas as pd
import requests

area = ["广州市", "深圳市", "东莞市", "佛山市", "珠海市", "中山市", "江门市", "惠州市", "清远市", "湛江市", "汕头市", "肇庆市", "茂名市", "梅州市", "阳江市", "韶关市",
        "河源市", "揭阳市", "潮州市", "云浮市", "汕尾市", "广州市",
        "深圳市",
        "东莞市",
        "惠州市",
        "佛山市",
        "湛江市",
        "中山市",
        "茂名市",
        "梅州市",
        "汕头市",
        "江门市",
        "揭阳市",
        "肇庆市",
        "清远市",
        "珠海市",
        "河源市",
        "韶关市",
        "潮州市",
        "汕尾市",
        "云浮市",
        "阳江市", "昭通市", "丽江市", "迪庆藏族自治州", "怒江傈僳族自治州", "曲靖市", "昆明市", "曲靖市", "红河哈尼族彝族自治州", "大理白族自治州", "楚雄彝族自治州", "玉溪市",
        "保山市", "普洱市", "丽江市", "文山壮族苗族自治州", "西双版纳傣族自治州", "昭通市", "临沧市", "迪庆藏族自治州", "德宏傣族景颇族自治州", "怒江傈僳族自治州", "兰州市", "庆阳市",
        "平凉市", "定西市", "临夏回族自治州", "张掖市", "白银市", "武威市", "天水市", "陇南市", "金昌市", "甘南藏族自治州", "兰州市", "武威市", "张掖市", "酒泉市", "白银市",
        "定西市", "天水市", "平凉市", "庆阳市", "陇南市", "临夏回族自治州", "金昌市", "甘南藏族自治州", "嘉峪关市", ]

area = list(set(area))


class BaiduMapSpider:

    def baiduapi(self):
        ak = 'ZjVgKYIjNgEqOYaKtkhqYVEVQrGB8YRk'
        c = []
        for query in ['医疗器械', '生物技术']:
            for region in area:
                page_num = 0
                while True:
                    time.sleep(0.5)
                    url = f'https://api.map.baidu.com/place/v2/search?query={query}&scope=2&region={region}&output=json&ak={ak}&page_size=20&page_num={page_num}'
                    response = requests.get(url)
                    res_json = response.json()
                    total = res_json.get('total')
                    results = res_json.get('results')
                    if total > 0:
                        page_num += 1
                        for res in results:
                            try:
                                item = {
                                    'name': res.get('name'),
                                    'address': res.get('address'),
                                    'province': res.get('province'),
                                    'city': res.get('city'),
                                    'telephone': res.get('telephone'),
                                    'area': res.get('area'),
                                    # 'tag': res.get('detail_info').get('tag'),
                                }
                                c.append(item)
                            except:
                                pass

                    else:
                        break
        df = pd.DataFrame(c)
        df.to_excel('医疗器械_生物技术.xlsx')


if __name__ == '__main__':
    BaiduMapSpider().baiduapi()
